package com.bestcem.xm.qdes.controller.vo;

import com.bestcem.xm.component.mybatis.format.String2JacksonSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 问卷库标签
 *
 * @author guitao.lu
 * @version V1.0
 * @date 2022/8/1
 */
@Data
public class QdesProjectDetailVo {
    private String id;
    /**
     * 公司id
     */
    @JsonProperty(value = "org_id")
    private String orgId;
    /**
     * 问卷id
     */
    @JsonProperty(value = "project_id")
    private String projectId;
    /**
     * 用户id
     */
    @JsonProperty(value = "user_id")
    private String userId;
    /**
     * 项目名称
     */
    @JsonProperty(value = "title")
    private String title;
    /**
     * 入口类型
     */
    @JsonProperty(value = "category")
    private Integer category;
    /**
     * 项目权限列表
     */
    @JsonProperty(value = "permissions")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String permissionsArry;
    /**
     * 权限类型
     */
    @JsonProperty(value = "perm_type")
    private Integer permType;
    /**
     * 所属文件夹id
     */
    @JsonProperty(value = "folder_id")
    private String folderId;
    /**
     * 项目状态
     */
    @JsonProperty(value = "status")
    private Integer status;
    /**
     * 项目是否已读状态
     */
    @JsonProperty(value = "badge_status")
    private Integer badgeStatus;
    /**
     * 创建人
     */
    @JsonProperty(value = "creator_id")
    private String creatorId;
    /**
     * 置顶顺序
     */
    @JsonProperty(value = "top_order")
    private Integer topOrder;

    @JsonProperty("created_dt")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdDt;

    @JsonProperty(value = "created_id")
    private String createdId;
    @JsonProperty("deleted")
    private Boolean deleted;
    private Double satisfaction;
    private Double nps;
    @JsonProperty(value = "nps_detail_list")
    private List<Double> npsDetailList;
    @JsonProperty(value = "is_copy_demo")
    private Boolean isCopyDemo;
    private Integer version;
    private Integer releaseVer;
}
